perm filename NILLS.TO[P,JRA] blob sn#128585 filedate 1974-10-31 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	Hi:
C00008 ENDMK
C⊗;
Hi:

Let me give you a slight introduction to  the manuscript. It grew out
of  a course on data  structures I developed at  UCLA. I expanded and
revised the notes here at Stanford, and have taught variants  at Bill
McKeeman's graduate  workshop the last  two years. I will  be helping
San  Jose State  set up their  graduate data  structures courses next
semester  and will  use  the  manuscript  there. A  few  students  in
Cordell's CS206 students used it,  and students of Tony Hearn at Utah
are currently using it.

The manuscript will attempt to be self-contained because I think LISP
is the best way  to introduce prospective students to  the field. The
fewer preconceptions about  programming languages,  the better.  Thus
the book  goes  from very  basic  undergraduate material  to  current
research in semantics.  The material on λ-calculus and Scott's models
is  currently  VERY  rudimentary.   I  am  attempting  to  develop an
intuitive introduction to these areas.

Basically the material falls into  5 areas: (1) the mechanics  of the
language;  recursion,    functional  arguments.    Representation  of
algorithms in a  programming language, representation  of domains  as
data structures; (2)evaluation; the importance  of interpretation and
its  relation  to  denotational models,    (3)implementation  and the
problems of machine orgainzation, (4)compilers for LISP;  LISP, being
a  very clean  way  to introduce  compilation,   (5)implications  for
language  design; given a clear  understanding of LISP,   what can be
done better. This  comes from  my own ideas  on a LISP-like  language
with  user-defined data  structures  and a  semantics  which is  more
amenable to proofs and verifications.

My writing style is definitely informal.  I don't believe that it  is
necessary to be deadly  serious in discussion an area  as informal as
programming languages. Besides I never met a real LISP hacker who did
not have a sense of humor.  I do NOT want to appear flippant or to be
imprecise; either of these faults  is deadly.  Two reviewers objected
to the style, six made explicit positive comments.

Now,   the state of the manuscript.  Parts  (1),  (2), and (5) are in
reasonable  shape; perhaps  80%  complete.   Part  (3)  perhaps  50%;
implementation without machines  is unsettling for many students, but
so much is irrelevant. I tried graphical methods the last time,  but
...; Part (4), on compilers, perhaps 70% completed.

The reviews have been quite favorable,   and I am convinced that  the
manuscript  should be  published.    LISP  is the  most  most  poorly
understood programming language around, and it gets a little tiresome
to see people re-inventing McCarthy's ideas simply because there's no
decent documentation.  There's a succinct statement by Strachey which
I  think  represents position  and  the current  stateof  affairs: "I
always worked on programming  languages because it seems to  me until
you  could  understand those,    you  couldn't understand  computers.
Understanding them doesn't really mean only being able to use them. A
lot of people  can use them  without understanding them."  This quote
goes at the beginning of the chapter on evaluation!

Here are  some of the guinea pigs who read most,   if not all: D.  B.
Anderson, F. vonHenke,  J. S. Moore, M.  J. Clancy, H. Sammet,  A. C.
Hearn, J.  Morales.  Parts have been read by L. Quam,  M. Gordon,  D.
Luckham,   A.  Thomas. In all,  15-20 "people" have read parts of the
manuscript; ennumerable "students" have made comments.